package u2

import (
	"errors"
	"strings"
)

// NewError 创建一个自定义错误对象
//
// 该函数用于生成包含详细信息的错误对象，格式为：
// "<key>异常，具体值：<val1>，<val2>，..."
//
// 参数:
//   - key: 错误类型或错误描述的关键字
//   - val: 可选的错误详细信息，可以传入多个值
//
// 返回值:
//   - error: 包含格式化错误信息的error对象
//
// 示例:
//
//	err := NewError("文件读取", "file.txt", "权限不足")
//	// 输出: "文件读取异常，具体值：file.txt，权限不足"
func NewError(key string, val ...string) error {
	// 构建基础错误描述
	desc := key + "异常"

	// 如果有附加信息，则追加到错误描述中
	if len(val) > 0 {
		desc += "，具体值：" + strings.Join(val, "，")
	}

	return errors.New(desc)
}
